Systems that provide functionality testing for software being executed on client computers are known. In those systems, user inputs may be simulated to test software features and test results may be compared with expected outcomes predefined by testers or software developers. Typically, such testing is performed by executing test cases through test engines provided by those systems. In some of those systems, graphic user interface(GUI) of the software may be tested by simulating user inputs to the GUI, capturing screen images of the GUI, recognizing GUI behaviors in response to the simulated user inputs, and comparing the recognized GUI behaviors with predefined GUI behaviors corresponding to the simulated user inputs.
Systems that provide server side testing are also known. Typically, such server side testing is performed by executing test scripts to invoke services provided by the server, obtaining testing results from the server, and comparing the obtained test results with expected outcome predefined by the provider of the servers.